package com.AdvancedDemos.继承.模板设计模式案例1.entry;

import com.AdvancedDemos.继承.模板设计模式案例1.service.AliyunSendMsg;
import com.AdvancedDemos.继承.模板设计模式案例1.service.SendCheckCode;
import com.AdvancedDemos.继承.模板设计模式案例1.service.TencentSendMsg;

import java.util.Scanner;

public class Entry {

    public static void main(String[] args) {

        // 请输入手机号码
        Scanner sc = new Scanner(System.in);
        System.out.print("请您输入登录的手机号码: ");
        String phone = sc.nextLine();

        // 调用发送短信类的方法发送短信验证码
        /*AliyunSendMsg aliyunSendMsg = new AliyunSendMsg();
        aliyunSendMsg.sendMsg(phone);

        TencentSendMsg tencentSendMsg = new TencentSendMsg();
        tencentSendMsg.sendMsg(phone);*/

        /**
         * 使用抽象父类变量指向子类的实例,再用父类变量调用自身实现的方法,但该方法抽象父类并没有给出完整的实现,部分不同的实现交由继承它的具体子类去实现,使得不同子类避免了大量重复部分,只需要重写父类中的抽象方法完成个性功能即可,谓之为
         *        模板设计模式
         */
        SendCheckCode sendCheckCode = new AliyunSendMsg();
        sendCheckCode.sendMsg(phone);
        sendCheckCode = new TencentSendMsg();
        sendCheckCode.sendMsg(phone);

    }

}
